As a User, I want to quickly register for a bikesharing account, so that I can use riding service  
{  
Basic Flow {  
(User) 1. The user shall open bikesharing APP.
(User) 2. The user shall select Oneclick Registration via WeChat.
(System) 3. The system automatically shall obtain thirdparty account information completes registration and generates a user account.
}  
Alternative Flow {  
A. At any time, thirdParty account is not bound to a mobile phone :
1. The system prompts for mobile phone number input.
2. The user fills in mobile phone number verifies SMS verification code to complete registration.
}  
}  

As a User, I want to accurately find available nearby bikes, so that I can to start riding quickly  
{  
Basic Flow {  
(User) 1. The user shall open map interface of APP.
(System) 2. The system shall display locations of bikes within five hundred meters marking battery levels and rideable statuses.
(User) 3. The user shall clicks on bike icon checks remaining battery range of vehicle.
}  
Alternative Flow {  
A. At any time, map loading fails :
1. The system switches to a text list to display nearby bike information.
}  
}  

As a User, I want to unlock bike by scanning code, so that I can start riding immediately  
{  
Basic Flow {  
(User) 1. The user shall scan QR code on basket or handlebar.
(System) 2. The system shall invoke Bluetooth module connects to bike sends an unlock command.
(System) 3. The bike voice broadcast shall say Unlock successful system updates vehicle status to in use.
}  
Alternative Flow {  
A. At any time, QR code is damaged :  
1. The user clicks Manually enter number.
2. The system shows AR realScene guidance for nearby bikes user enters number to unlock.
}  
}  

As a User, I want to view riding costs in real time, so that I can control travel expenses  
{  
Basic Flow {  
(System) 1. When starting, ride system shall calculate timeBased fee and mileageBased fee in real time displays them in APP floating window.
(System) 2. Every five minutes of riding system shall pushes fee estimation notification.
}  
Alternative Flow {  
A. At any time, Entering a special billing area :
1. The system pops up a window one hundred meters in advance reminds user of area surcharge rules.
}  
}  

As a User, I want to use multiple payment methods for settlement, so that I can complete payments flexibly  
{  
Basic Flow {  
(System) 1. When ride ends, the system shall generate an order gives priority to deducting account balance.
(User) 2. When balance is insufficient, the user shall select WeChat Pay or Alipay to complete payment.
(System) 3. The system records payment information shall update account status.
}  
Alternative Flow {  
A. At any time, payment fails :
1. The system retains order for twenty four hours pushes payment reminders every six hours.
}  
}  

As a User, I want to report vehicle faults, so that I can maintain riding environment  
{  
Basic Flow {  
(User) 1. The user shall clicks Report Fault button in APP.
(System) 2. The system shall automatically obtains current vehicle ID and location pops up a photo upload interface.
(User) 3. The user shall take photos of faulty parts submits them.
}  
Alternative Flow {  
A. At any time, weak network signal :
1. The system caches fault report data automatically submits it network is restored.
}  
}  

As a User, I want to claim riding coupons, so that I can reduce riding costs  
{  
Basic Flow {  
(User) 1. The user shall participate in APP Riding CheckIn activity.
(System) 2. The system shall distribute full reduction coupons or discount coupons to user account daily.
(User) 3. When paying for ride,  the system shall automatically deducts available coupons.
}  
Alternative Flow {  
A. At any time, cCoupons are about to expire :
1. The system pushes a Coupon Expiration Reminder notification three days in advance.
}  
}  

As a User, I want to apply for a deposit refund to recover funds in a timely manner  
{  
Basic Flow {  
(User) 1. The user shall enter WalletDeposit interface in APP clicks Apply for Deposit Refund.
(System) 2. The system shall check user has no unfinished orders initiates refund process.
(System) 3. The deposit shall be returned to payment account via original route system updates user deposit status.
}  
Alternative Flow {  
A. At any time, there are unfinished orders :
1. The system prompts Please complete current order before applying for a deposit refund.
}  
}  